#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <pthread.h>
void*rd(void*);
void*wd(void*);
int main(int argc,const char*argv[])
{
	pthread_t p1,p2;
	if(pthread_create(&p1,NULL,wd,NULL)!=0){printf("创建失败\n");return -1;}
	if(pthread_create(&p2,NULL,rd,NULL)!=0){printf("创建失败\n");return -1;}
	printf("等待回收\n");
	pthread_join(p1,NULL);
	pthread_join(p2,NULL);
	printf("准备打开读管道：\n");
	return 0;
}
void*rd(void*)
{
	int pr=-1;
	printf("准备打开读管道：\n");
	if((pr=open("tx2",O_RDONLY))==-1){perror("打开失败");return NULL;}
	printf("打开读文件成功\n");
	char R[128]="";
	while(1)
	{
		bzero(R,128);
		read(pr,R,128);
		printf("\n对方发送：%s\n请输入：",R);
		fflush(stdout);
		if(strcmp(R,"q")==0)
			break;
	}
	pthread_exit(NULL);

	return NULL;
}
void*wd(void*)
{
	int pd=-1;
	printf("准备打开写管道：\n");
	if((pd=open("tx1",O_WRONLY))==-1){perror("打开失败");return NULL;}
	printf("打开写文件成功\n");
	char W[128]="";
	while(1)
	{
		printf("请输入：");
		fgets(W,128,stdin);
		W[strlen(W)-1]='\0';
		write(pd,W,strlen(W));
		if(strcmp(W,"q")==0)
			break;
	}
	pthread_exit(NULL);
	return NULL;
}

